// exports.ConfigHandler = void 0;
// var AL_GAME_HUA_Common = require("./AL_GAME_HUA_Common");
// var AL_GAME_HUA_Define = require("./AL_GAME_HUA_Define");
// var r = (function () {
//     function e() {
//         e.tianjia_peizhi(this);
//     }
//     e.tianjia_peizhi = function (e) {
//         this.configs.push(e);
//     };
//     e.xiaohui_suoyou_peizhi_duixiang = function () {
//         this.configs.forEach(function (e) {
//             e.destroy();
//         });
//         this.configs = [];
//     };
//     e.prototype.destroy = function () {};
//     e.prototype.yibu_jiazai_json_peizhi = function (e) {
//         return new Promise(function (t, n) {
//             var r = AL_GAME_HUA_Define.Define.GAME_NAME;
//             var a = "config/" + e;
//             AL_GAME_HUA_Common.Common.loadRes({
//                 bundle: r,
//                 url: a,
//                 type: cc.JsonAsset
//             })
//                 .then(function (e) {
//                     cc.assetManager.releaseAsset(e);
//                     t(e.json);
//                 })
//                 .catch(function (e) {
//                     n(e);
//                 });
//         });
//     };
//     e.prototype.yibu_jiazai_txt_peizhi = function (e, t) {
//         var n = this;
//         if (void 0 === t) {
//             t = !0;
//         }
//         return new Promise(function (r, a) {
//             var s = AL_GAME_HUA_Define.Define.GAME_NAME;
//             var c = "config/txt/" + e;
//             AL_GAME_HUA_Common.Common.loadRes({
//                 bundle: s,
//                 url: c,
//                 type: cc.TextAsset
//             })
//                 .then(function (e) {
//                     cc.assetManager.releaseAsset(e);
//                     var o = e.text;
//                     if (t) {
//                         o = n.jiemi_wenben_neirong(o);
//                     }
//                     var i = JSON.parse(o);
//                     r(i);
//                 })
//                 .catch(function (e) {
//                     a(e);
//                 });
//         });
//     };
//     e.prototype.jiemi_wenben_neirong = function (e) {
//         var t = window.CryptoJS;
//         var n = t.enc.Utf8.parse("ly11gfddsutxgfxt");
//         var o = t.enc.Utf8.parse("f1015dcd2b0b1461");
//         return t.AES.decrypt(e, n, {
//             mode: t.mode.CBC,
//             padding: t.pad.Pkcs7,
//             iv: o
//         }).toString(t.enc.Utf8);
//     };
//     e.configs = [];
//     return e;
// })();
// exports.ConfigHandler = r;


// exports.ConfigHandler = void 0;
// var AL_GAME_HUA_Common = require("./AL_GAME_HUA_Common");
// var AL_GAME_HUA_Define = require("./AL_GAME_HUA_Define");

// /** ConfigHandler用于处理配置相关的加载和销毁 */
// var ConfigHandler = (function () {
//     function ConfigHandler() {
//         ConfigHandler.tianjia_peizhi(this);
//     }

//     /**
//      * 添加配置对象到配置列表
//      * @param {Object} config - 新的配置对象
//      */
//     ConfigHandler.tianjia_peizhi = function (config) {
//         this.configs.push(config);
//     };

//     /**
//      * 销毁所有的配置对象
//      */
//     ConfigHandler.xiaohui_suoyou_peizhi_duixiang = function () {
//         this.configs.forEach(function (config) {
//             config.destroy();
//         });
//         this.configs = [];
//     };

//     /** 销毁当前配置对象 */
//     ConfigHandler.prototype.destroy = function () {
//         // 具体的销毁逻辑
//     };

//     /**
//      * 异步加载JSON配置
//      * @param {string} configName - JSON配置的名称
//      * @returns {Promise<Object>}
//      */
//     ConfigHandler.prototype.yibu_jiazai_json_peizhi = function (configName) {
//         return new Promise(function (resolve, reject) {
//             var gameName = AL_GAME_HUA_Define.Define.GAME_NAME;
//             var configPath = "config/" + configName;
//             AL_GAME_HUA_Common.Common.loadRes({
//                 bundle: gameName,
//                 url: configPath,
//                 type: cc.JsonAsset
//             })
//                 .then(function (asset) {
//                     cc.assetManager.releaseAsset(asset);
//                     resolve(asset.json);
//                 })
//                 .catch(function (error) {
//                     reject(error);
//                 });
//         });
//     };

//     /**
//      * 异步加载文本配置
//      * @param {string} configName - 文本配置的名称
//      * @param {boolean} parseContent - 是否解析内容，默认为true
//      * @returns {Promise<Object>}
//      */
//     ConfigHandler.prototype.yibu_jiazai_txt_peizhi = function (configName, parseContent) {
//         var self = this;
//         if (void 0 === parseContent) {
//             parseContent = true;
//         }
//         return new Promise(function (resolve, reject) {
//             var gameName = AL_GAME_HUA_Define.Define.GAME_NAME;
//             var configPath = "config/txt/" + configName;
//             AL_GAME_HUA_Common.Common.loadRes({
//                 bundle: gameName,
//                 url: configPath,
//                 type: cc.TextAsset
//             })
//                 .then(function (asset) {
//                     cc.assetManager.releaseAsset(asset);
//                     var content = asset.text;
//                     if (parseContent) {
//                         content = self.jiemi_wenben_neirong(content);
//                     }
//                     var parsedContent = JSON.parse(content);
//                     resolve(parsedContent);
//                 })
//                 .catch(function (error) {
//                     reject(error);
//                 });
//         });
//     };

//     /**
//      * 解密文本内容
//      * @param {string} encryptedText - 加密的文本
//      * @returns {string} - 解密后的文本
//      */
//     ConfigHandler.prototype.jiemi_wenben_neirong = function (encryptedText) {
//         var CryptoJS = window.CryptoJS;
//         var key = CryptoJS.enc.Utf8.parse("ly11gfddsutxgfxt");
//         var iv = CryptoJS.enc.Utf8.parse("f1015dcd2b0b1461");
//         return CryptoJS.AES.decrypt(encryptedText, key, {
//             mode: CryptoJS.mode.CBC,
//             padding: CryptoJS.pad.Pkcs7,
//             iv: iv
//         }).toString(CryptoJS.enc.Utf8);
//     };

//     /** 存储配置的数组 */
//     ConfigHandler.configs = [];
//     return ConfigHandler;
// })();
// exports.ConfigHandler = ConfigHandler;


// 导出 ConfigHandler 模块
exports.ConfigHandler = void 0;

// 引入外部模块
const AL_GAME_HUA_Common = require("./AL_GAME_HUA_Common");
const AL_GAME_HUA_Define = require("./AL_GAME_HUA_Define");

/**
 * ConfigHandler 类用于处理配置相关的加载和销毁
 */
class ConfigHandler {
    /** 存储配置的数组 */
    static configs = [];

    constructor() {
        ConfigHandler.tianjia_peizhi(this);
    }

    /**
     * 添加配置对象到配置列表
     * @param {Object} config - 新的配置对象
     */
    static tianjia_peizhi(config) {
        ConfigHandler.configs.push(config);
    }

    /**
     * 销毁所有的配置对象
     */
    static xiaohui_suoyou_peizhi_duixiang() {
        ConfigHandler.configs.forEach((config) => {
            config.destroy();
        });
        ConfigHandler.configs = [];
    }

    /**
     * 销毁当前配置对象
     * 具体的销毁逻辑需要在此实现
     */
    destroy() {
        // 具体的销毁逻辑
    }

    /**
     * 异步加载JSON配置
     * @param {string} configName - JSON配置的名称
     * @returns {Promise<Object>}
     */
    async yibu_jiazai_json_peizhi(configName) {
        try {
            const gameName = AL_GAME_HUA_Define.Define.GAME_NAME;
            const configPath = `config/${configName}`;
            const asset = await AL_GAME_HUA_Common.Common.loadRes({
                bundle: gameName,
                url: configPath,
                type: cc.JsonAsset,
            });
            cc.assetManager.releaseAsset(asset);
            return asset.json;
        } catch (error) {
            throw error;
        }
    }

    /**
     * 异步加载文本配置
     * @param {string} configName - 文本配置的名称
     * @param {boolean} [parseContent=true] - 是否解析内容，默认为true
     * @returns {Promise<Object>}
     */
    async yibu_jiazai_txt_peizhi(configName, parseContent = true) {
        try {
            const gameName = AL_GAME_HUA_Define.Define.GAME_NAME;
            const configPath = `config/txt/${configName}`;
            const asset = await AL_GAME_HUA_Common.Common.loadRes({
                bundle: gameName,
                url: configPath,
                type: cc.TextAsset,
            });

            cc.assetManager.releaseAsset(asset);
            let content = asset.text;

            // 如果需要解析内容，则调用解密方法
            if (parseContent) {
                content = this.jiemi_wenben_neirong(content);
            }
            const parsedContent = JSON.parse(content);
            return parsedContent;
        } catch (error) {
            throw error;
        }
    }

    /**
     * 解密文本内容
     * @param {string} encryptedText - 加密的文本
     * @returns {string} - 解密后的文本
     */
    jiemi_wenben_neirong(encryptedText) {
        const CryptoJS = window.CryptoJS;
        const key = CryptoJS.enc.Utf8.parse("ly11gfddsutxgfxt");
        const iv = CryptoJS.enc.Utf8.parse("f1015dcd2b0b1461");
        return CryptoJS.AES.decrypt(encryptedText, key, {
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7,
            iv: iv,
        }).toString(CryptoJS.enc.Utf8);
    }
}

exports.ConfigHandler = ConfigHandler;
